using System;
using System.Threading;
using System.Timers;
//using Timer=System.Timers.Timer;
using airwolf.SSDP;

namespace airwolf
{
	public abstract class UPnPService
	{
		//protected Timer notifyTimer;
		//protected const int notifyInterval = 1000 * 10;
        private readonly string uuid;

		protected UPnPService()
		{
            uuid = "uuid:" + Guid.NewGuid();
		}

		protected void StartNotifyTimer()
		{
			//notifyTimer = new Timer(notifyInterval);
			//notifyTimer.Elapsed += NotifyTimer_OnElapsed;
			//notifyTimer.Enabled = true;
			//NotifyTimer_OnElapsed(null, null);
		}

		private void NotifyTimer_OnElapsed(object sender, ElapsedEventArgs e)
		{
			//Thread notifyThread = new Thread(Notify);
			//notifyThread.Start();
		}

        public virtual string UUID
        {
            get
            {
                return uuid;
            }
        }

		public abstract string URN{ get; }
        public abstract string ServiceDescription { get; }
	}
}
